import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AppRoutingModule} from "./app-routing.module";
import { HttpModule} from "@angular/http";
import { BrowserAnimationsModule} from "@angular/platform-browser/animations";
import { NgZorroAntdModule} from "ng-zorro-antd";
import { CamManageHomeComponent } from './cam-manage/cam-manage-home/cam-manage-home.component';
import { CamManageListComponent } from './cam-manage/cam-manage-list/cam-manage-list.component';
import { CamManageAddComponent } from './cam-manage/cam-manage-form/cam-manage-add/cam-manage-add.component';
import { CamManageEditComponent } from './cam-manage/cam-manage-form/cam-manage-edit/cam-manage-edit.component';
import { CamManageSearchComponent } from './cam-manage/cam-manage-search/cam-manage-search.component';
import { FileUploadComponent} from "./shared/component/file-upload/file-upload.component";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {FileUploadModule} from "ng2-file-upload";
import { CamApplyByUserComponent } from './cam-apply/cam-apply-by-user/cam-apply-by-user.component';
import { CamApplyByManagerComponent } from './cam-apply/cam-apply-by-manager/cam-apply-by-manager.component';
import { CamCalendarComponent } from './cam-apply/cam-apply-home/cam-calendar/cam-calendar.component';
import { CamApplyListComponent } from './cam-apply/cam-apply-home/cam-apply-list/cam-apply-list.component';
import {HashLocationStrategy, LocationStrategy} from "@angular/common";
import {CalendarComponent} from "ap-angular2-fullcalendar";
import {ImageUploadModule} from "angular2-image-upload";
import { UdgTableComponent } from './shared/component/udg-table/udg-table.component';
import { UserTableComponent } from './shared/component/user-table/user-table.component';
import { BatchAssignComponent } from './batch-assign/batch-assign.component';
import {CamSearchService} from "./shared/service/cam-search.service";
import {CamManageService} from "./shared/service/cam-manage.service";
import {UserInfoService} from "./shared/service/user-info.service";
import {CamTypeService} from "./shared/service/cam-type.service";
import {CamCalendarService} from "./shared/service/cam-calendar.service";
import {DriverService} from "./shared/service/driver.service";
import {SingleOpenWinService} from "./shared/service/single-open-win.service";
import {CamApplyService} from "./shared/service/cam-apply.service";
import { VehicleTableComponent } from './shared/component/vehicle-table/vehicle-table.component';
import { DriverTableComponent } from './shared/component/driver-table/driver-table.component';
import { CamRecordHomeComponent } from './cam-record/cam-record-home/cam-record-home.component';
import { CamRecordTableComponent } from './cam-record/cam-record-table/cam-record-table.component';
import {MaintenanceService} from "./shared/service/maintenance.service";
import {CamRecordService} from "./shared/service/cam-record.service";
import {MaintainModelComponent} from "./shared/component/maintain-model/maintain-model.component";
import {MaintainRecordHomeComponent} from "./maintain/maintain-record-home/maintain-record-home.component";
import {MaintainService} from "./shared/service/maintain.service";
import { MaintainRecordTableComponent } from './maintain/maintain-record-table/maintain-record-table.component';
import {MaintainSearchComponent} from "./maintain/maintain-search/maintain-search.component";
import {CamSearchHomeComponent} from "./cam-search/cam-search-home/cam-search-home.component";
import {TypeAddFormComponent} from "./cam-type/type-add-form/type-add-form.component";
import {TypeEditFormComponent} from "./cam-type/type-edit-form/type-edit-form.component";
import {TypeSearchComponent} from "./cam-type/type-search/type-search.component";
import {TypeHomeComponent} from "./cam-type/type-home/type-home.component";
import {TypeFormComponent} from "./cam-type/type-form/type-form.component";
import {TypeListComponent} from "./cam-type/type-list/type-list.component";
import {MaintenanceFormComponent} from "./maintenance/maintenance-form/maintenance-form.component";
import {MaintenanceEditFormComponent} from "./maintenance/maintenance-edit-form/maintenance-edit-form.component";
import {MaintenanceAddFormComponent} from "./maintenance/maintenance-add-form/maintenance-add-form.component";
import {MaintenanceHomeComponent} from "./maintenance/maintenance-home/maintenance-home.component";
import {MaintenanceListComponent} from "./maintenance/maintenance-list/maintenance-list.component";
import {MaintenanceSearchComponent} from "./maintenance/maintenance-search/maintenance-search.component";
import {DriverAddFormComponent} from "./driver/driver-add-form/driver-add-form.component";
import {DriverEditFormComponent} from "./driver/driver-edit-form/driver-edit-form.component";
import {DriverHomeComponent} from "./driver/driver-home/driver-home.component";
import {DriverListComponent} from "./driver/driver-list/driver-list.component";
import {DriverSearchComponent} from "./driver/driver-search/driver-search.component";
import {CamDetailHomeComponent} from "./cam-detail/cam-detail-home/cam-detail-home.component";
import {MaintainRecordComponent} from "./cam-detail/maintain-record/maintain-record.component";
import {CamRemandComponent} from "./cam-remand/cam-remand.component";
import {CamSearchTableComponent} from "./cam-search/cam-search-table/cam-search-table.component";
import { NewCamTypeComponent } from './new-maintain/new-cam-type/new-cam-type.component';
import { NewDriverComponent } from './new-maintain/new-driver/new-driver.component';
import {FileUploadService} from "./shared/service/file-upload.service";
import { NewMaintenanceTypeComponent } from './new-maintain/new-maintenance-type/new-maintenance-type.component';
import { NewCamManageComponent } from './new-cam-manage/new-cam-manage.component';


@NgModule({
  declarations: [
      AppComponent,
      CamManageHomeComponent,
      CamManageListComponent,
      CamManageAddComponent,
      CamManageEditComponent,
      CamManageSearchComponent,
      FileUploadComponent,
      FileUploadComponent,
      CamApplyByUserComponent,
      CamApplyByManagerComponent,
      CamCalendarComponent,
      CamApplyListComponent,
      CalendarComponent,
      UdgTableComponent,
      UserTableComponent,
      BatchAssignComponent,
      VehicleTableComponent,
      CamRecordHomeComponent,
      CamRecordTableComponent,
      MaintainModelComponent,
      MaintainRecordHomeComponent,
      MaintainRecordTableComponent,
      MaintainSearchComponent,
      CamSearchHomeComponent,
      TypeAddFormComponent,
      TypeEditFormComponent,
      TypeFormComponent,
      TypeHomeComponent,
      TypeListComponent,
      TypeSearchComponent,
      MaintainModelComponent,
      MaintainRecordHomeComponent,
      MaintainRecordTableComponent,
      MaintenanceFormComponent,
      MaintenanceEditFormComponent,
      MaintenanceAddFormComponent,
      MaintenanceHomeComponent,
      MaintenanceListComponent,
      MaintenanceSearchComponent,
      DriverAddFormComponent,
      DriverEditFormComponent,
      DriverHomeComponent,
      DriverListComponent,
      DriverSearchComponent,
      DriverTableComponent,
      CamDetailHomeComponent,
      MaintainRecordComponent,
      CamRemandComponent,
      CamSearchTableComponent,
      NewCamTypeComponent,
      NewDriverComponent,
      NewMaintenanceTypeComponent,
      NewCamManageComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
    ReactiveFormsModule,
    HttpModule,
    FileUploadModule,
    BrowserAnimationsModule,
    NgZorroAntdModule.forRoot(),
    ImageUploadModule.forRoot()
  ],
  providers: [
      CamSearchService,
      CamManageService,
      UserInfoService,
      {provide: LocationStrategy, useClass: HashLocationStrategy},
      CamTypeService,
      CamSearchService,
      UserInfoService,
      CamManageService,
      CamCalendarService,
      DriverService,
      SingleOpenWinService,
      CamApplyService,
      CamManageService,
      MaintenanceService,
      CamRecordService,
      MaintainService,
      FileUploadService
  ],
  bootstrap: [AppComponent],
  entryComponents: [
    MaintainSearchComponent
  ]
})
export class AppModule { }
